\section{Synopsis}

The primary function of the coupler is to coordinate the execution of, and interactions among, the various
component models which comprise a single configuration of the CCSM.  Abstractly, one can think of the coupler
as a set of synchronization, regridding, and communication operations which could be invoked whenever and
wherever performance, software engineering, or scientific requirements dictate.  This document describes a 
``Next Generation'' Flux coupler which will represent significant advances over the current version \cite{nfc}

The overriding computational goal of the CCSM is to build a performance-portable model which can execute
efficiently on a range of platforms, in a variety of configurations.  Thus, the coupler requirements should 
take into account the overall goal to maintain performance portability across scalable parallel supercomputers, 
commodity clusters, shared memory multiprocessors, and vector supercomputers.  







